package org.example.memora.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.time.Instant;
import java.util.Date;

@Data // 自动生成 getter/setter、toString、equals、hashCode
@Document(collection = "comment") // 指定 MongoDB 集合名
public class Comment implements Serializable {

    @Id
    private String id;
    // 对应 _id 字段

    @Field("article_id")
    private String articleId;
    // 文章ID

    @Field("content")
    private String content;
    // 评论内容

    @Field("user_id")
    @Indexed
    private String userId;
    // 评论人ID

    @Field("nickname")
    private String nickname;
    // 评论人昵称

    @Field("created_at")
    private Instant createdAt;
    // 评论的日期时间

    @Field("liken_um")
    private Integer likeNum;
    // 点赞数

    @Field("reply_num")
    private Integer replyNum;
    // 回复数

    @Field("state")
    private Integer state;
    // 状态 0：不可见；1：可见

    @Field("parent_id")
    private String parentId;
    // 上级ID，0表示顶级评论
}

